﻿/**
 * Classe relative à la page loginFreebox.html
 */

/**
 * L'objet LoginFreebox en mode "static"
 */
var LoginFreebox = {};

/**
 * Le champ de texte du mot de passe
 */
LoginFreebox.passwordFreeboxTextbox = null;
/**
 * Le bouton se connecter
 */
LoginFreebox.connectButton = null;
/**
 * Le bouton annuler
 */
LoginFreebox.cancelButton = null;

/**
 * Initialisation de la page
 */
LoginFreebox.init = function() {

	// Récupération des éléments
	LoginFreebox.passwordFreeboxTextbox = document.getElementById("password-freebox");
	LoginFreebox.connectButton = document.getElementById("connect-button");
	LoginFreebox.cancelButton = document.getElementById("cancel-button");
	
	// Mise en place des écouteurs
	LoginFreebox.passwordFreeboxTextbox.oninput = LoginFreebox.markDirty;
	LoginFreebox.connectButton.onclick = LoginFreebox.connect
	LoginFreebox.cancelButton.onclick = LoginFreebox.cancel
	
	// Récupération du lien d'origine
	var params = URL.getParams();
	LoginFreebox.link = decodeURIComponent(params.link);
	
	LoginFreebox.passwordFreeboxTextbox.addEventListener("keyup",LoginFreebox.checkEnterKey);
	
	LoginFreebox.markClean();
}

LoginFreebox.checkEnterKey = function(e) {
	if (e.which == 13) {
		LoginFreebox.connect();
	}
};

/**
 * Ecouteur déclenché lors du clic sur le bouton "Connecter"
 *
 * Permet d'envoyer vers la requête d'identification
 */
LoginFreebox.connect = function() {

	// Récupération de la valeur du mot de passe
	var password = LoginFreebox.passwordFreeboxTextbox.value;
	
	// Récupération de la classe FreeboxLink
	FreeboxLink = chrome.extension.getBackgroundPage().FreeboxLink;
	
	// Lancement de la requête d'identification avec le lien en paramètre
	FreeboxLink.loginWithPassword(LoginFreebox.link, password);
	
	// Suppression de la fenêtre de l'affichage
	FreeboxLink.hideLoginMessage();
}

/**
 * Ecouteur déclenché lors du clic sur le bouton "Annuler"
 */
LoginFreebox.cancel = function()
{
	// Cache la fenêtre d'identificaiton
	FreeboxLink.hideLoginMessage();
};

/**
 * Met en "enabled" le bouton "Connecter"
 */
LoginFreebox.markDirty = function() {
	LoginFreebox.connectButton.disabled = false;
}

/**
 * Met en "disabled" le bouton "Connecter"
 */
LoginFreebox.markClean = function() {
	LoginFreebox.connectButton.disabled = true;
}

LoginFreebox.init();
